/**
 * 
 */
package cl.duocap.refaxion.view.bean;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import cl.duocap.refaxion.arquitectura.Jsf2Util;
import cl.duocap.refaxion.dto.RepuestoDTO;
import cl.duocap.refaxion.dto.TipoRepuestoDTO;
import cl.duocap.refaxion.servicios.RepuestoService;




/**
 * @author rentonx
 *
 */
@ManagedBean(name="formRepuestoEditarBean")
@SessionScoped
public class FormRepuestoEditarBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private RepuestoDTO repuestoEditado;
	private List<TipoRepuestoDTO> listaTipoRepuestosObtenida;
	private Map<String,Integer> listaTipoRepuestosCombo;
	private int idRepuestoEditar;
	@ManagedProperty("#{jsf2Util}")
	private Jsf2Util jsf2Util;

	/**
	 * 
	 */
	@PostConstruct
	public void iniciar(){
		if(FacesContext.getCurrentInstance().isPostback()){
			return;
		}
		//carga comobo de tipo de resputos
		RepuestoService repuesto = new RepuestoService();
		setListaTipoRepuestosObtenida(repuesto.obtenerTiposRepuestos());
		
		listaTipoRepuestosCombo = new LinkedHashMap<String, Integer>();
		for (TipoRepuestoDTO t : listaTipoRepuestosObtenida) {
			listaTipoRepuestosCombo.put(t.getNombreTipoRepuesto(), t.getIdTipoRepuesto());
		}
		///////////////////////////////////////////////////////////////////////////////////
		cargarRepuestoEditar();
		
		
	}
	
	public void cargarRepuestoEditar(){
		idRepuestoEditar = Integer.parseInt(jsf2Util.getParameter("idRepuesto"));
		RepuestoService repuesto = new RepuestoService();
		setRepuestoEditado(repuesto.cargarRepuestoEditar(idRepuestoEditar));
	}
	
	public String editarRepuesto(){

		SimpleDateFormat dateformatJava = new SimpleDateFormat("dd-MM-yyyy");
		repuestoEditado.setFechaIngreso(dateformatJava.format(repuestoEditado.getFechaIngresoTrans()));
		repuestoEditado.setIdRepuesto(idRepuestoEditar);
		RepuestoService repuesto = new RepuestoService();
		if(repuesto.editarRepuesto(repuestoEditado)){
			return "mainRepuesto.xhtml?faces-redirect=true";
			
		}else{
			return "formRepuestoEditar.xhtml?faces-redirect=true";
		}
	}
	
	public void editListener() { 
        FacesContext context = FacesContext.getCurrentInstance();  		        
        context.addMessage(null, new FacesMessage("Informacion", "La informacion del Repuesto se modifico con exito."));
	} 

	
	
	public FormRepuestoEditarBean() {
		
	}



	public RepuestoDTO getRepuestoEditado() {
		return repuestoEditado;
	}



	public void setRepuestoEditado(RepuestoDTO repuestoEditado) {
		this.repuestoEditado = repuestoEditado;
	}



	public List<TipoRepuestoDTO> getListaTipoRepuestosObtenida() {
		return listaTipoRepuestosObtenida;
	}



	public void setListaTipoRepuestosObtenida(
			List<TipoRepuestoDTO> listaTipoRepuestosObtenida) {
		this.listaTipoRepuestosObtenida = listaTipoRepuestosObtenida;
	}



	public Map<String,Integer> getListaTipoRepuestosCombo() {
		return listaTipoRepuestosCombo;
	}



	public void setListaTipoRepuestosCombo(Map<String,Integer> listaTipoRepuestosCombo) {
		this.listaTipoRepuestosCombo = listaTipoRepuestosCombo;
	}

	public Jsf2Util getJsf2Util() {
		return jsf2Util;
	}

	public void setJsf2Util(Jsf2Util jsf2Util) {
		this.jsf2Util = jsf2Util;
	}

}
